<?php


// 安装环境
$host = $_POST['host']; // host url
$user = $_POST['user']; // root
$pwd  = $_POST['pwd'];  // 123
$char = $_POST['charset']; // utf8
$name = $_POST['name'];  // bbs_demo数据库名称
$bbsname = $_POST['bbsname'];  // bbs_demo数据库名称
$bbspwd  = md5($_POST['bbspwd']);  // bbs_demo数据库名称

$config =<<<EOF
<?php
// 常用参数配置
error_reporting(E_ALL & ~E_NOTICE);

date_default_timezone_set('PRC');

// 数据库
const DB_HOST = '{$host}';
const DB_USER = '{$user}';
const DB_PWD  = '{$pwd}';
const DB_CHAR = '{$char}';
const DB_NAME = '{$name}';

EOF;

// 引入文件.需要在mysql之前引入
if (file_put_contents('../config/config.php', $config) !== false) {
    include '../config/config.php';
}


// 执行数据库操作
$sql  =<<<EOF

/** 清空数据库 */
DROP DATABASE IF EXISTS `{$name}`;

/** 数据库 */
CREATE DATABASE `{$name}` DEFAULT CHARSET = {$char};

/** 选择数据库 */
USE `{$name}`;

/** 用户登录表 */
DROP TABLE IF EXISTS `login_tb`;
CREATE TABLE IF NOT EXISTS `login_tb`(
    uid int primary key auto_increment,
    account varchar(30) not null unique comment '用于登录的账户',
    password char(32) not null comment '用于登录的密码',
    isAdmin tinyint default 0 comment '当前用户是否是管理员',
    status tinyint default 0 comment '当前用户是否被冻结',
    isStop tinyint default 0 comment '当前用户是否被禁言',
    exper tinyint default 1 comment '当前用户经验,通过经验可以计算用户等级',
    score int default 0 comment '积分,下载文件用',
    create_time int default 0 comment '创建时间,永不修改',
    last_time int default 0 comment '最后一次登录时间'
)ENGINE=MYISAM DEFAULT CHARSET={$char} AUTO_INCREMENT=43121231;

insert into `login_tb`(uid, account, password, isAdmin, status) values
    (null, '{$bbsname}', '{$bbspwd}', 1, 0);


/** 用户信息表 */
DROP TABLE IF EXISTS `userinfo_tb`;
CREATE TABLE IF NOT EXISTS `userinfo_tb`(
    uid int primary key auto_increment,
    email varchar(200) unique comment '邮箱',
    alias varchar(50) comment '显示的名称,不填写默认账户名称',
    truename varchar(50) comment '真实的姓名',
    avatarid char(32) default '1' comment '头像id',
    gender tinyint default 2 comment '0:女 1:男 2:其他',
    birthyear int default 0 comment '生日',
    address varchar(250) comment '地址',
    phone varchar(30) comment '手机号码',
    qid int default 1 comment '安全问题的键,1就是没有设置安全问题',
    answer varchar(250) default '' comment '安全问题',
    create_time int default 0 comment '创建时间,永不修改',
    last_time int default 0 comment '最后一次修改时间'
)ENGINE=MYISAM DEFAULT CHARSET={$char} AUTO_INCREMENT=43121231;
/** 插入管理员  */
insert into `userinfo_tb`(uid, email, alias, avatarid, qid, answer) values
    (null, '', '{$bbsname}', '1', '1' ,'');

/** 用户安全表 */
DROP TABLE IF EXISTS `safe_question_tb`;
CREATE TABLE IF NOT EXISTS `safe_question_tb`(
    qid int primary key auto_increment comment '从数字1开始,默认数字一为没有安全问题',
    question varchar(250) not null
)ENGINE=MYISAM DEFAULT CHARSET={$char};

insert into `safe_question_tb`(qid, question) values
    (null, '无安全提问(未设置请忽略)'),
    (null, '母亲的名字'),
    (null, '爷爷的名字'),
    (null, '父亲出生的城市'),
    (null, '您其中一位老师的名字'),
    (null, '您个人计算机的型号'),
    (null, '您最喜欢的餐馆名称'),
    (null, '驾驶执照最后四位数字');
    


/** 文件表 */
DROP TABLE IF EXISTS `uploadfile_tb`;
CREATE TABLE IF NOT EXISTS `uploadfile_tb`(
    fid int primary key auto_increment comment '从数字1开始,默认数字一为没有安全问题',
    fpath varchar(250) not null comment '相对文件路径',
    name varchar(100) not null comment '文件真实名称',
    size int default 0 comment '文件大小字节',
    type varchar(30) default '' comment '文件mime类型',
    fmd5 char(32) default '' comment '文件的md5值'
)ENGINE=MYISAM DEFAULT CHARSET={$char};

insert into `uploadfile_tb`(fid, fpath, name, type) values
    (null, 'avatar.jpeg', 'avatar.jpeg', 'image/gif');



/** 分区与板块表 */
DROP TABLE IF EXISTS `zone_modul_tb`;
CREATE TABLE IF NOT EXISTS `zone_modul_tb`(
    zid int primary key auto_increment comment '分区与板块',
    parentid int not null default 0 comment '父板块id,如果id为0,那么就是分区',
    imageid int default 1 comment '模块图片,分区不需要',
    title varchar(50) not null comment '分区或者板块名称',
    intro varchar(250) comment '介绍',
    status tinyint default 1 comment '板块状态,是否可用',
    admin varchar(250) comment '版主id 通过,分割',
    create_time int default 0 comment '创建时间',
    create_uid int not null comment '创建人'
)ENGINE=MYISAM DEFAULT CHARSET={$char};



/** 友情链接的申请 */
DROP TABLE IF EXISTS `flink_tb`;
CREATE TABLE IF NOT EXISTS `flink_tb`(
    lid int primary key auto_increment comment '友情链接id',
    flink varchar(250) not null unique comment '链接',
    sitename varchar(250) not null comment '网站名称',
    name varchar(250) not null comment '联系人名称',
    phone varchar (30) not null comment '联系人电话',
    logo int default 0 comment '上传图片id',
    netlogo varchar(250) default '' comment '在线的网络logo',
    status tinyint default 0 comment '链接是否申请通过',
    apply_time int default 0 comment '提交申请的时间',
    end_time int default 0 comment '链接有效期'
)ENGINE=MYISAM DEFAULT CHARSET={$char};



/** 帖子列表 */
DROP TABLE IF EXISTS `post_tb`;
CREATE TABLE IF NOT EXISTS `post_tb`(
    pid int primary key auto_increment,
    parentId int not null default 0 comment '父贴,0就是发帖,否者是回帖',
    modid int not null comment '所属模块id',
    uid int not null comment '谁发的帖子',
    title varchar(250) not null comment '只有发的帖有标题',
    content text not null comment '帖子内容',
    isDel tinyint default 0 comment '是否被删除',
    isTop tinyint default 0 comment '是否被置顶',
    iswally tinyint default 0 comment '是否加精',
    create_time int default 0 comment '帖子发表时间'
)ENGINE=MYISAM DEFAULT CHARSET={$char};

    
/** 版主表 */
DROP TABLE IF EXISTS `relo_tb`;
CREATE TABLE IF NOT EXISTS `relo_tb`(
    rid int primary key auto_increment,
    modulid int not null comment '板块id',
    uid int not null comment '用户id',
    status tinyint default 0 comment '是否有效',
    create_time int default 0 comment '创建时间',
    update_time int default 0 comment '修改时间'
)ENGINE=MYISAM DEFAULT CHARSET={$char};
EOF;
file_put_contents('../sql/bbs.sql', $sql);


$error = '';
$link = mysqli_connect(DB_HOST, DB_USER, DB_PWD);
if ($link === false){
    $error = '数据库链接失败';
}

mysqli_set_charset($link, DB_CHAR);
mysqli_select_db($link, DB_NAME);
$result = mysqli_multi_query($link, $sql);
if ($result === false){
    $error = '数据库创建失败';
}

?>

<!DOCTYPE html>
<html>
    <head>
        <title>检测环境结果</title>
        <meta chatset="utf-8">
    </head>
    <style type="text/css">
    .main-div{
        width:960px;
        padding:15px;
        margin:25px auto;
        border:1px solid rgb(240,240,240);
    }
    body {
        background-color:#F8F8F8;   
    }
    </style>
    <body>
        <div class="main-div">
        <center>
        <?php
        if (empty($error)){
            file_put_contents('../install.lock', 'ok');
            echo '<h1 style="color:green">Done,enjoin!</h1>';
            echo '<meta http-equiv="refresh" content="3,url=../index.php">';
        } else {
            echo '<h1 style="color:red">'.$error.'</h1>';
        }
        ?>
        </center>
        </div>
    </body>
</html>